import pandas as pd
df = pd.read_csv('data/superstore.csv', sep=';', index_col='Row ID')
df['Order Date'] = pd.to_datetime(df['Order Date'], dayfirst=True)
df['Ship Date'] = pd.to_datetime(df['Ship Date'], dayfirst=True)
df[:1]
| Order ID | Order Date | Order Priority | Order Quantity | Sales | Discount | Ship Mode | Profit | Unit Price | Shipping Cost | Customer Name | Province | Region | Customer Segment | Product Category | Product Sub-Category | Product Name | Product Container | Ship Date | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Row ID | |||||||||||||||||||
| 1 | 3 | 2010-10-13 | Low | 6 | 261.54 | 0.04 | Regular Air | -213.25 | 38.94 | 35.0 | Muhammed MacIntyre | Nunavut | Nunavut | Small Business | Office Supplies | Storage & Organization | Eldon Base for stackable storage shelf, platinum | Large Box | 2010-10-20 |
import altair as alt
alt.themes.enable('powerbi')
ThemeRegistry.enable('powerbi')
alt.data_transformers.disable_max_rows()
DataTransformerRegistry.enable('default')
selection = alt.selection_point(fields=['Customer Segment'],bind='legend')
mark_point() : тип графика (точечный)add_params() : добавление дополнительных параметров к графику ( интерактивный выбор элементов )encode() : добавление данныхopacity= : прозрачностьalt.condition() : Условная кострукция if-elseinteractive() : интеракивный масштабproperties() : добавление праметров к заднему фонуchart = alt.Chart(df,width=500, height=500)\
.mark_point(size=40)\
.add_params(selection)\
.encode(x='Sales', y='Profit', color='Customer Segment', opacity=alt.condition(selection, alt.value(1), alt.value(0.05)))\
.interactive()\
.properties(title='Точечный график');
chart
mark_bar() : тип графика (столбчатая диаграмма)encode() : добавление данныхday() : выбор дней недели из datetimemean() : аггрегатная функция к даннымalt.Y() : создание оси Y для редактированияalt.Axis() : доступ к парметрам осейselection = alt.selection_point(fields=['Customer Segment'],bind='scales')
chart = alt.Chart(df,width=500, height=500,)\
.mark_bar()\
.add_params(selection)\
.encode(x='day(Order Date):O', y=alt.Y('mean(Sales)',axis=alt.Axis(grid=False)), color='Customer Segment', opacity=alt.condition(selection, alt.value(1), alt.value(0.1)))\
.interactive()\
.properties(title='Great Altair barplot');
chart